/**
* you may not use this file except in compliance with the license
* you may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
**/

#include "hi_dvpp_for_acl_internal.h"
#include "hi_dvpp_vdec.h"

#include "acl_stub.h"

acldvppStatus aclStub::acldvppInit(const char *configPath)
{
    (void)configPath;
    return 0;
}

acldvppStatus aclStub::acldvppFinalize()
{
    return 0;
}

hi_s32 hi_mpi_sys_set_chn_csc_matrix(hi_mod_id mode,
    hi_s32 chn, hi_csc_matrix csc_matrix, hi_csc_coefficient *csc_coefficient)
{
    return 0;
}

hi_s32 hi_mpi_venc_set_jpeg_param_for_acl(hi_s32 chn, const hi_venc_jpeg_param *jpeg_param)
{
    return 0;
}

hi_s32 hi_mpi_dvpp_get_image_info_for_acl(hi_payload_type img_type, const hi_vdec_stream *stream,
    hi_img_info *img_info, hi_s32 *num_components)
{
    img_info->pixel_format = HI_JPEG_RAW_FORMAT_YUV400;
    return 0;
}

hi_s32 hi_mpi_dvpp_get_pic_buf_size_for_acl(hi_payload_type img_type, const hi_vdec_stream *stream,
    hi_pic_info *out_pic_info)
{
    return 0;
}

hi_s32 hi_vdec_get_pic_buf_size_for_acl(hi_payload_type type, hi_pic_buf_attr *buf_attr)
{
    return 0;
}

hi_s32 hi_mpi_venc_get_jpege_predicted_size_for_acl(const hi_video_frame_info *frame, const hi_venc_jpeg_param *jpeg_param,
    hi_u32 *size)
{
    return 0;
}

hi_s32 hi_mpi_sys_init_for_acl(void)
{
    return 0;
}

hi_s32 hi_mpi_vpc_destroy_chn_for_acl(hi_s32 chn)
{
    return 0;
}

hi_s32 hi_mpi_jpege_destroy_chn_for_acl(hi_s32 chn)
{
    return 0;
}

hi_s32 hi_mpi_jpegd_destroy_chn_for_acl(hi_s32 chn)
{
    return 0;
}

hi_s32 hi_mpi_vpc_resize_for_acl(hi_vpc_chn chn, const hi_vpc_pic_info *source_pic, hi_vpc_pic_info *dest_pic,
    hi_double fx, hi_double fy, hi_u32 interpolation, DvppStream stream)
{
    return 0;
}

hi_s32 hi_mpi_vpc_create_chn_for_acl(hi_vpc_chn *chn, const hi_vpc_chn_attr *attr)
{
    *chn = 0;
    return 0;
}

hi_s32 hi_mpi_jpege_create_chn_for_acl(hi_s32 *chn, const hi_venc_chn_attr *attr)
{
    *chn = 1;
    return 0;
}

hi_s32 hi_mpi_jpegd_create_chn_for_acl(hi_s32 *chn, const hi_vdec_chn_attr *attr)
{
    *chn = 2;
    return 0;
}

hi_s32 hi_mpi_jpegd_decode_for_acl(hi_vdec_chn chn, const hi_img_stream_enhance *img_stream, hi_pic_info *out_pic_info,
    DvppStream stream)
{
    return 0;
}

hi_s32 hi_mpi_venc_send_jpege_frame_for_acl(hi_venc_chn chn, const hi_video_frame_info *frame,
    const hi_img_stream *jpege_stream, hi_jpege_outsize_info *img_outsize_info, DvppStream stream)
{
    return 0;
}

hi_s32 hi_mpi_vpc_crop_resize_paste_for_acl(hi_vpc_chn chn, const hi_vpc_pic_info *source_pic,
    hi_vpc_crop_resize_paste_region crop_resize_paste_info[], hi_u32 count, DvppStream stream)
{
    return 0;
}

hi_s32 hi_mpi_vpc_convert_color_for_acl(hi_vpc_chn chn, const hi_vpc_pic_info *source_pic, hi_vpc_pic_info *dest_pic,
    hi_csc_conf *conf, DvppStream stream)
{
    return 0;
}

hi_s32 hi_mpi_vpc_copy_make_border_for_acl(hi_vpc_chn chn, const hi_vpc_pic_info *source_pic,
    hi_vpc_pic_info *dest_pic, hi_vpc_make_border_info make_border_info, DvppStream stream)
{
    return 0;
}

hi_s32 hi_mpi_vpc_calc_hist_for_acl(hi_vpc_chn chn, const hi_vpc_pic_info *source_pic, void *hist_config,
    uint32_t size, DvppStream stream)
{
    return 0;
}

hi_s32 hi_mpi_vpc_pyrdown_for_acl(hi_vpc_chn chn, const hi_vpc_pic_info *source_pic, hi_vpc_pic_info dest_pic[],
    hi_u32 filter_level, hi_s8 gaussian_filter[][5], hi_u16 divisor, hi_vpc_make_border_info make_border_info,
    DvppStream stream)
{
    return 0;
}

hi_s32 hi_mpi_vpc_batch_crop_resize_paste_for_acl(hi_vpc_chn chn, const hi_vpc_pic_info *source_pic[], hi_u32 pic_num,
    hi_vpc_crop_resize_paste_region crop_resize_paste_info[], hi_u32 count[], DvppStream stream)
{
    return 0;
}

hi_s32 hi_mpi_vpc_batch_crop_resize_make_border_for_acl(hi_vpc_chn chn, const hi_vpc_pic_info *source_pic[],
    hi_u32 pic_num, hi_vpc_crop_resize_border_region crop_resize_make_border_info[], hi_u32 count[],
    DvppStream stream)
{
    return 0;
}

hi_s32 hi_mpi_vpc_equalize_hist_for_acl(hi_vpc_chn chn, const hi_vpc_pic_info *source_pic,
    const hi_vpc_pic_info *dest_pic, const hi_vpc_lut_remap *hist_config, DvppStream stream)
{
    return 0;
}

hi_s32 hi_mpi_vdec_set_jpegd_precision_mode(hi_vdec_chn chn, const hi_jpegd_precision_mode mode)
{
    return 0;
}

acldvppStatus acldvppInit(const char *configPath)
{
    (void)configPath;
    return MockFunctionTest::aclStubInstance().acldvppInit(configPath);
}

acldvppStatus acldvppFinalize()
{
    return MockFunctionTest::aclStubInstance().acldvppFinalize();
}